A broad array of tools, such as libraries and plugins, are available for JAVASCRIPT and simplify development of JAVASCRIPT-based applications. Because these libraries have already been debugged and optimized, a JAVASCRIPT developer can usually assume that the libraries themselves do not have to be debugged. Additionally, many of these tools are compressed and minified so that the underlying code is obfuscated and made unreadable to the developer, which prevents JAVASCRIPT developers from further modifying or debugging these third-party libraries. Errors in a JAVASCRIPT developer's code may create errors within these libraries, which can cause confusion when debugging the code if the error appears to originate in the library code.
Unrelated or third-party code or content may also create errors in the developer's code. The developer generally cannot or does not want to modify the library or unrelated code. Instead, the developer is likely more interested in identifying only the errors that originate in his or her own code.
As JAVASCRIPT applications become more complex and the number of libraries and plugins for JAVASCRIPT increases, it is more and more difficult for application and web site developers to work on problems within their own code without noise from these libraries and plugins and from other unrelated content.